1. Field of the Invention
The invention relates to a technique, specifically apparatus and accompanying methods, for automatically updating, in a networked client-server environment, software stored on, e.g., a client computer. Inasmuch as this software includes, but is not limited to application software, use of the invention can advantageously and significantly reduce costs and simplify tasks associated with maintaining and administering client software across essentially all types of different client-server environments.
2. Description of the Prior Art
Over the past decade, personal computer (PC) usage has increased substantially to the point where currently PCs (including workstations) have diffused into many aspects of a business organization. Coincident with this phenomena, a desire has increasingly arisen among computer users in a common organization to readily share computer files. This desire, particularly when fueled by historically decreasing costs of network equipment, has led to an expanding number of network installations throughout a business community to facilitate file sharing and electronic communication among not only users in a common organization, but also with users at other organizations and locations. Moreover, as these costs of increasingly sophisticated PCs and network equipment continue to fall, networked computer usage is penetrating increasingly smaller organizations as the expected benefits to those organizations, such as expanded productivity, outweigh the costs associated therewith.
If current cost and technology trends continue, PC usage should ideally proliferate throughout businesses to a point of becoming rather ubiquitous and inter-connected, i.e., at least ideally and at some time in the future where most people will possess their own PC and where such PCs will become increasingly inter-networked with each other.
However, in reality, a significant impediment to networking has been and continues to be cost--not just the initial and replacement cost of hardware, i.e., each computer and associated network equipment, and the time and effort required to successfully connect them together, but also the cost of administering, on a post-installation basis, each and every networked computer. This latter cost, which often vastly exceeds the cost of the former, includes the cost of servicing, including updating, the software stored on each and every networked computer. In a typical enterprise environment having thousands or tens of thousands of networked client PCs--which is very common today, it is very expensive for a network administrator, or, more generally speaking in a large enterprise, a member of an information technology (IT) department to physically visit each user and service his(her) client computer as required.
One conventional widely-used approach aimed at reducing the cost of maintaining software has been to post software updates on a network server and permit users to access, download and remotely install a desired update(s) from the server onto his(her) client computer. This approach is frequently used by device manufacturers, such as those manufacturing modems, video driver boards and other computer peripherals, who post their updates to their FTP or web servers which, in turn, can be remotely accessed by their customers through the Internet. The same approach is often used by software manufacturers to post "patches" and maintenance updates (so-called "service packs") for access by their user community.
This approach requires a user stationed at a client computer to access the server, via a networked connection, and then select the correct update, for a given program or firmware module, download it and finally locally install it. While, on its face, this task would appear to be rather simple, in reality, complexities exist. Software updates, for the same product, regularly vary by country and often by locales within a given country. This is particularly true for firmware updates for telecommunications devices, such as modems and other terminal adapters. Incompatibilities, in terms of, e.g., signaling used for customer premise equipment, do arise among local central offices. Consequently, different software updates are often produced by a device manufacturer in order to tailor its manufactured device to conform to the requirements of central office equipment situated in different countries and locales. Similarly, software manufacturers of traditional applications, such as word processing, spreadsheet programs and operating systems, also utilize country specific updates where necessary to adapt their product to linguistic and/or cultural aspects of a given country.
Unfortunately, a user seeking to retrieve an update for his(her) software program or device is often confronted with a bewildering array of potential updates for that particular item. Hence, the user is often unsure of the correct update to choose and frequently, as a result of this confusion, chooses the wrong update. Use of the wrong update in certain products, such as modems, owing to locale compatibility requirements, may prevent the device from operating correctly or even at all in its locale. In addition, depending on how ergonomically a web site is constructed by a manufacturer, the user may simply be uncomfortable with the site and thus reluctant to navigate through the site to locate the update (s)he needs and/or become frustrated with the site and thus abandon his(her) efforts short of completing the update. In either instance, the device or software program will not be updated.
The art, sensing the difficulties users encounter in updating their client software, is starting to provide products with an automatic software update capability. In that regard, once a product is installed and is executing at a client computer, this capability generally involves establishing, either on user request or automatically on a time-scheduled basis, a network connection from the client computer to an FTP site for the manufacturer of that product; then, determining, typically based on version numbers of the most recent update available at that site and installed at the client, whether the client software should be updated; if the client is to be updated, downloading the update file(s) from the ftp site; and, finally, executing an appropriate installation program to install the update and change the version number of the client software.
Such an approach eliminates the need for a user to navigate an unfamiliar web site to locate the update. However, this approach, when employed by a given manufacturer, is generally limited to updating software produced by just that manufacturer and not others. Also, this approach is generally unable to differentiate among country- or locale-specific updates and select the proper update for a given user location.
Furthermore, this approach, as it currently appears in the art, is limited to just updating application programs. As noted, software, other than application programs, additionally exists in client computers. This additional software, which also needs to be periodically updated, includes end user applications and firmware embedded in various devices, including modems, and drivers for various peripherals and other hardware devices. This approach is simply unable to handle this additional software. In addition to updating this software, non-executable information and/or device configurations may need to be conveyed to or updated on a client computer.
Thus, a need exists in the art for a technique, specifically apparatus and accompanying methods, for automatically updating software installed on a client computer. This technique should be able to update software from a wide variety of sources, e.g., manufacturers, and types, i.e., not just application programs but also, e.g., device firmware. In addition, this technique should be able to select, where appropriate, a correct update for the country and/or locale at which the client computer is situated. Advantageously, use of such a technique should substantially simplify the task of maintaining client computers, particular in terms of correctly updating their client software, and appreciably reduce its attendant cost; as well as reducing a burden and associated cost which a manufacturer faces in propagating software updates throughout its user community.